<?php

/**
 * Productos form.
 *
 * @package    tercermilenio
 * @subpackage form
 * @author     Your name here
 */
class ProductosForm extends BaseProductosForm {

    public function configure() {

        if ($this->getObject()->isNew()) {
            $this->setWidget('pro_articulo', new sfWidgetFormInput());
            $this->setWidget('pro_talle', new sfWidgetFormInput());
            $this->widgetSchema->setHelp('pro_ganancia', 'El valor debe ser entre 0 y 100.');

            $this->setValidator('pro_articulo', new sfValidatorInteger(array('required' => true)));
            $this->setValidator('pro_talle', new sfValidatorInteger(array('required' => true)));

            //unset(
                    //$this['pro_cantidad']
            //);
        } else {
            $this->widgetSchema['pro_cantidad']->setAttribute('disabled', true);
            $this->validatorSchema['pro_cantidad']->setOption('required', false);
            /*$this->setWidget('pro_a_registrar', new sfWidgetFormInput());
            $this->setValidator('pro_a_registrar', new sfValidatorInteger(array('required' => true, 'min' => 1)));
             * 
             */
        }

        $this->setWidget('pro_a_registrar', new sfWidgetFormInput());
        $this->setValidator('pro_a_registrar', new sfValidatorInteger(array('required' => false, 'min' => 0)));

        unset(
                $this['devoluciones_list'],
                $this['detalle_ventas_list'],
                $this['detalle_compras_list']
        );
    }

    public function setup() {

        parent::setup();

        $this->setWidgets(array(
            'pro_articulo' => new sfWidgetFormInputHidden(),
            'pro_talle' => new sfWidgetFormInputHidden(),
            'pro_precio' => new sfWidgetFormInput(),
            'pro_cantidad' => new sfWidgetFormInput(),
            'pro_disponible' => new sfWidgetFormInput(),
            'pro_ganancia' => new sfWidgetFormInput(array()),
            'pro_descripcion' => new sfWidgetFormTextarea(),
            'pro_marca' => new sfWidgetFormPropelChoice(array('model' => 'Marcas', 'add_empty' => 'Seleccione una marca')),
            'pro_rubro' => new sfWidgetFormPropelChoice(array('model' => 'Rubros', 'add_empty' => 'Seleccione un rubro')),
            'pro_proveedor' => new sfWidgetFormPropelChoice(array('model' => 'Proveedores', 'add_empty' => 'Seleccione una proveedor')),
            'devoluciones_list' => new sfWidgetFormPropelChoiceMany(array('model' => 'Ventas')),
            'detalle_ventas_list' => new sfWidgetFormPropelChoiceMany(array('model' => 'Ventas')),
            'detalle_compras_list' => new sfWidgetFormPropelChoiceMany(array('model' => 'Compras')),
        ));

        $this->setValidators(array(
            'pro_articulo' => new sfValidatorPropelChoice(array('model' => 'Productos', 'column' => 'pro_articulo', 'required' => false)),
            'pro_talle' => new sfValidatorPropelChoice(array('model' => 'Productos', 'column' => 'pro_talle', 'required' => false)),
            'pro_precio' => new sfValidatorNumber(array('required' => true, 'min' => 0)),
            'pro_cantidad' => new sfValidatorInteger(array('required' => false, 'min' => 0)),
            'pro_disponible' => new sfValidatorInteger(array('required' => false, 'min' => 0)),
            'pro_ganancia' => new sfValidatorNumber(array('required' => false, 'min' => 0, 'max' => 100)),
            'pro_descripcion' => new sfValidatorString(array('max_length' => 255)),
            'pro_marca' => new sfValidatorPropelChoice(array('model' => 'Marcas', 'column' => 'mar_id')),
            'pro_rubro' => new sfValidatorPropelChoice(array('model' => 'Rubros', 'column' => 'rub_id', 'required' => false)),
            'pro_proveedor' => new sfValidatorPropelChoice(array('model' => 'Proveedores', 'column' => 'pvd_id')),
            'devoluciones_list' => new sfValidatorPropelChoiceMany(array('model' => 'Ventas', 'required' => false)),
            'detalle_ventas_list' => new sfValidatorPropelChoiceMany(array('model' => 'Ventas', 'required' => false)),
            'detalle_compras_list' => new sfValidatorPropelChoiceMany(array('model' => 'Compras', 'required' => false)),
        ));

        $this->widgetSchema->setNameFormat('productos[%s]');

        $this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);
    }

}
